//引入小仓库
import { useUserInfoStore } from '@/stores/userInfo';
import pinia from '@/stores/index';
let userStore = useUserInfoStore(pinia);

//对外暴露函数:全局的自定义指令 v-has
export default function has(app:any) {
    app.directive("has", {
        //定义全局自定义指令:使用的这个指令的组件|DOM已经挂载完毕会执行一次
        //ele:v-has绑定DOM元素,ele即为当前绑定指令的DOM元素
        //ele:v-has绑定组件,ele是组件template模板全局DOM元素
        //options:配置对象,获取指令右侧绑定数值
        mounted(ele:any, options:any) {
            //v-has右侧数值,如果在数组当中没有出现,执行下面if语句
            //把DOM干掉
            if (!userStore.buttons.includes(options.value)) {
                //获取当前绑定v-has指令的父节点,把子节点干掉
                //类似于v-if:原生DOM的写法
                ele.parentNode.removeChild(ele);
            }
        },
    })
}